package com.xd.core.h5.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xd.core.business.vo.RepaymentInsuranceSchedule;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author ZX
 * @since 2025-02-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ExcelIgnoreUnannotated
public class CarInsuranceDetail implements Serializable {
    @ApiModelProperty(value = "进件单号")
    private Integer incomingId;

    @ApiModelProperty(value = "收费模式（0--前置，1--后置，2--前置+后置）")
    private String chargeModel;

    @ApiModelProperty(value = "预付款总金额")
    private BigDecimal advanceAmount;

    @ApiModelProperty(value = "其他代缴总金额")
    private BigDecimal otherAmount;

    @ApiModelProperty(value = "商业保险总金额")
    private BigDecimal insuranceAmount;

    @ApiModelProperty(value = "保险公司")
    private String accountName;

    @ApiModelProperty(value = "首付比例（单位：%）")
    private BigDecimal downRepaymentRate;

    @ApiModelProperty(value = "首付金额（单位：元）")
    private BigDecimal downRepaymentAmount;

    @ApiModelProperty(value = "前置服务费率（单位：%）")
    private BigDecimal preServiceFeeRate;

    @ApiModelProperty(value = "前置服务费")
    private BigDecimal serviceFee;

    @ApiModelProperty(value = "后置服务费率（单位：%）")
    private BigDecimal postServiceFeeRate;

    @ApiModelProperty(value = "总利息（单位：元）")
    private BigDecimal interestTodo;

    @ApiModelProperty(value = "借款期数")
    private Integer term;

    @ApiModelProperty(value = "每月还款日")
    private Integer repayDay;

    @ApiModelProperty(value = "分期金额")
    private BigDecimal loanAmount;

    @ApiModelProperty(value = "借款方式（0--等额本金，1--等额本息，2--等本等息）")
    private String loanMethod;

    @ApiModelProperty(value = "借款方式（0--等额本金，1--等额本息，2--等本等息）")
    private String loanMethodCode;

    @ApiModelProperty(value = "综合年华利率（单位：%）")
    private BigDecimal rate;

    @ApiModelProperty(value = "委托投保人")
    private String entrustedPolicyholder;

    @ApiModelProperty(value = "保单账单")
    private List<RepaymentInsuranceSchedule> repaymentInsuranceSchedules;

    @ApiModelProperty(value = "合同金额")
    private String AmountDue;

    @ApiModelProperty(value = "最近一次还款日期")
    @JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date latestRepayDate;

    @ApiModelProperty(value = "合同列表")
    private List<AddSignerVo> addSignerVos;


}
